Matlab
code 4.1: Matlab file “Figure 4-2.m”
%--------------------------------------------------------------------
% This
code can be used to generate Figure 4.2
%--------------------------------------------------------------------
clear
all;
close
all;
%% the
time-varying and no time-varying micro-Doppler frequency curves(narrow band
bistatic radar)
c = 3e8;
j =
sqrt(-1);
fc =
6e9; % carrier frequency
radt =
[0 0 0]; % coordinates of transmitter
radr =
[7000 0 0]; % coordinates of receiver
cord =
1000*[3 4 5]; % coordinates of target centre in the world coordinate system
w =
5*pi*[1 2 1]; % angular velocity
r0 =
[0.2 0.2 -0.6]; % coordinates of the scatterer in the reference coordinate
system
ae =
pi*[1/3 1/4 1/5]; % Euler angle
ri1 =
[cos(ae(3)) sin(ae(3)) 0;-sin(ae(3)) cos(ae(3)) 0;0 0 1];
ri2 = [1
0 0;0 cos(ae(2)) sin(ae(2));0 -sin(ae(2)) cos(ae(2))];
ri3 =
[cos(ae(1)) sin(ae(1)) 0;-sin(ae(1)) cos(ae(1)) 0;0 0 1];
ri =
ri1*ri2*ri3; % initial rotation matrix
t = 0.5;
% radar illumimated time
v =
150*[1 1 1]; % translational velocity of target
prf =
1000; % pulse repetition frequency
pri =
1/prf; % pulse repetition interval
dt =
0:pri:t-pri; % time sampling interval
m =
length(dt);
nb0 =
(radt-cord)/sqrt(sum((radt-cord).^2))+(radr-cord)/sqrt(sum((radr-cord).^2));
nbt =
zeros(length(r0),m);
for i =
1:m
nbt(:,i) =
((radt-cord)+v*dt(i))/sqrt(sum(((radt-cord)+v*dt(i)).^2))...
+((radr-cord)+v*dt(i))/sqrt(sum(((radr-cord)+v*dt(i)).^2));
end
tn =
length(w);
r0r =
r0'; % scatterer in the reference coordinate system
w =
ri*w'; % angular velocity in the reference coordinate system
omega =
sqrt(sum(w.^2)); % angular freuency
we =
w/omega; % unit vector
wr = [0
-we(3) we(2);we(3) 0 -we(1);-we(2) we(1) 0]; % skew symmetric matrix
fmd0 =
zeros(tn,m); % micro-Doppler frequency when no time-varying
fmdt =
zeros(tn,m); % micro-Doppler frequency when time-varying
for i =
1:m
fmd0(:,i) = (omega*fc/c)*(wr*(wr*sin(omega*dt(i))+eye(3)*cos(omega*dt(i)))*r0r)'*nb0';
fmdt(:,i) =
(omega*fc/c)*(wr*(wr*sin(omega*dt(i))+eye(3)*cos(omega*dt(i)))*r0r)'*nbt(:,i);
end
figure
plot(dt,fmd0,'or')
hold on
plot(dt,fmdt,'-b')
legend('time-varying
','no time-varying ');
xlabel('Time
(s)')
ylabel('Frequency
(Hz)')
axis([0,0.5,-1200,1200])